package com.demo.passenger.hotel.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 旅客入住信息登记表
 * </p>
 *
 * @author weifucheng
 * @since 2019-07-13
 */
@Data
@Accessors(chain = true)
public class PassengerResidenceInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    //@TableId("ID")
    @TableId(value = "ID", type = IdType.UUID)
    private String id;

    /**
     * 语言类型：0中文；1英语；2日语
     */
    @TableField("LANGUAGE_TYPE")
    private Integer languageType;

    /**
     * 所属旅店ID
     */
    @TableField("HOTEL_ID")
    private String hotelId;

    /**
     * 国籍
     */
    @TableField("NATIONALITY")
    private String nationality;


    /**
     * 旅客姓名
     */
    @TableField("PASSENGER_NAME")
    private String passengerName;

    /**
     * 住址
     */
    @TableField("ADDRESS")
    private String address;

    /**
     * 职业
     */
    @TableField("OCCUPATION")
    private String occupation;

    /**
     * 性别：0男；1女
     */
    @TableField("SEX")
    private Integer sex;

    /**
     * 年龄
     */
    @TableField("AGE")
    private Integer age;

    /**
     * 电话
     */
    @TableField("TEL")
    private String tel;

    /**
     * 入住全员姓名
     */
    @TableField("ALL_RESIDENTS")
    private String allResidents;

    /**
     * 入住日期YYYYMMDD
     */
    @TableField("CHECK_IN_DATE")
    private String checkInDate;
    /**
     * 入住时间HHMMSS
     */
    @TableField("CHECK_IN_TIME")
    private String checkInTime;

    /**
     * 退房日期YYYYMMDD
     */
    @TableField("CHECK_OUT_DATE")
    private String checkOutDate;
    /**
     * 退房时间HHMMSS
     */
    @TableField("CHECK_OUT_TIME")
    private String checkOutTime;

    /**
     * 状态：0待工作人员确认；1工作人员已确认；
     */
    @TableField("STATUS")
    private Integer status;

    /**
     * 来源：0标识工作人员在后台系统创建；1标识手机端创建；
     */
    @TableField("SOURCE")
    private Integer source;


    /**
     * 护照文件
     * JSON数组
     * [{uid.name,url}]
     * （1）uid：uuid
     * （2）name: 文件名称
     * （3）url：下载路径
     */
    @TableField("PASSPORT_FILES")
    private String passportFiles;

    /**
     * 创建时间
     */
    @TableField("CREATE_TIME")
    private Date createTime;

    /**
     * 修改时间
     */
    @TableField("UPDATE_TIME")
    private Date updateTime;

    /**
     * 创建者
     */
    @TableField("CREATE_BY")
    private String createBy;

    /**
     * 是否删除：空值标识未删除，其他值标识已删除
     */
    @TableField("IS_DELETED")
    private String isDeleted;


    /*非持久化字段*/

    /**
     * 旅店名称
     */
    @TableField(exist = false)
    private String hotelNo;

    /**
     * 旅店名称
     */
    @TableField(exist = false)
    private String hotelName;

    /**
     * 入住开始日期
     */
    @TableField(exist = false)
    private String checkInStatrTime;

    /**
     * 入住结束日期
     */
    @TableField(exist = false)
    private String checkInEndTime;
}
